# -*- coding: utf-8 -*-
# 如果你的程序（包括注释）中包含中文，请加上上面这一行，用于指明编码（utf-8）。
# #号开头的行都是注释。

# 如何编辑本程序：
#     用任何文本编辑器均可编辑。

# 如何运行本程序：
#     本程序为一个模块，只定义了函数，用于被其它模块调用，单独运行没有输出。


# 每一个Python程序都是一个模块，程序的文件名就是模块名。

# 应该为每一个模块编写说明文档，比如：
'''
这是我们编写的第一个模块，该模块包含以下内容：
store_name：字符串变量
make_pizza：函数
'''

# 可以通过 help(模块名) 函数来访问模块的说明文档:
#    在ipython中运行：
#    import p601_module
#    help(p601_module)
# 也可以直接访问__doc__属性来访问文档，但是推荐第一种方式。


store_name = '好滋味比萨饼店'

def make_pizza(size, *toppings):
    '''打印顾客点的所有配料。'''
    #print(type(toppings))  # 'tuple'
    print('\nMaking a ' + str(size) + '-inch pizza with the following toppings:')
    for t in toppings:
        print('- ' + t)
    
    
# 为模块编写测试代码。
# 如果直接运行该模块（python p601_module.py），这些测试代码应被执行；
# 如果其它程序导入该模块，则这些测试代码不应该执行。

print('In p601_module: my name is ' + __name__)

if __name__ == '__main__':
    print()  # 打印空行，使得输出好看一些。
    print('Welcome to %s' % store_name)
    print('Try to make a pizza:')
    make_pizza(8, 'mushroom')
    make_pizza(8, 'mushroom', 'green pepper', 'pineapple')
    make_pizza(8)
    make_pizza(0)

# __name__ 是模块内置的变量，
# 如果直接运行该模块（python p601_module.py），__name__的值为'__main__'；
# 如果该模块被导入其它程序中，则该模块的__name__的值为模块名（则上述的
# 测试代码不会被执行）。


# python如何找到你定义的模块？
#（1）如果模块和使用模块的程序在同一个目录，无需任何处理，自动能找到。
#（2）使用环境变量PYTHONPATH告诉python到哪里去找模块。
#（3）将模块放置在默认的模块加载路径中。

# 如何查看默认的模块加载路径？
#   import sys, pprint
#   pprint.pprint(sys.path)
# 使用pprint的原因是pprint打印路径比print函数更好看。
# 一般把让多个程序共享的模块放置在 lib\site-packages 下。








